using System;
using System.Collections.Generic;
using System.Text;

namespace PSE.Hosting.Management.Windows
{
    /// <summary>
    /// Repesents a WCF Service.
    /// </summary>
    public class Service
    {
        private string _name;

        /// <summary>
        /// The name of the service.
        /// </summary>
        public string Name
        {
            get { return _name; }
            set { _name = value; }
        }

        private string _userName;

        /// <summary>
        /// The user name to start the AppDomain, if additional security issue is necessary.
        /// </summary>
        public string UserName
        {
            get { return _userName; }
            set { _userName = value; }
        }

        private string _password;

        /// <summary>
        /// The password of the user to start the AppDomain, if additional security issue is necessary.
        /// </summary>
        public string Password
        {
            get { return _password; }
            set { _password = value; }
        }

        private string _assembly;

        /// <summary>
        /// The full assembly name.
        /// </summary>
        public string Assembly
        {
            get { return _assembly; }
            set { _assembly = value; }
        }

        private string _codeBase;

        /// <summary>
        /// The full path of the assembly
        /// </summary>
        public string CodeBase
        {
            get { return _codeBase; }
            set { _codeBase = value; }
        }

        private string _domain;

        /// <summary>
        /// The domain of the user to start the AppDomain, if additional security issue is necessary.
        /// </summary>
        public string Domain
        {
            get { return _domain; }
            set { _domain = value; }
        }

        private bool _isActive;

        /// <summary>
        /// Flag to indicate if the service is active.
        /// </summary>
        public bool IsActive
        {
            get { return _isActive; }
            set { _isActive = value; }
        }

        private bool _isValid;

        /// <summary>
        /// Flag to indicate if the service is valid.
        /// </summary>
        public bool IsValid
        {
            get { return _isValid; }
            set { _isValid = value; }
        }

        private string _mexAddress;

        /// <summary>
        /// The Metadata Exchange (MEX) address of the service.
        /// </summary>
        public string MexAddress
        {
            get { return _mexAddress; }
            set { _mexAddress = value; }
        }
    }
}
